import 'dart:async';
import 'dart:ffi';
import 'package:sqflite/sqflite.dart';

import 'DatabaseHelper.dart';
import 'TtsItem.dart';

class TtsRepository {
  final dbHelper = DatabaseHelper.instance;

  // 插入一条新记录
  Future<bool> insertTtsItem(TtsItem ttsItem) async {
    final db = await dbHelper.database;
    var count =  await db.insert(
      DatabaseHelper.table,
      ttsItem.toMap(),
      conflictAlgorithm: ConflictAlgorithm.replace,
    );
    return count > 0;
  }

  // 更新现有记录
  Future<bool> updateTtsItem(TtsItem ttsItem) async {
    final db = await dbHelper.database;
    return await db.update(
      DatabaseHelper.table,
      ttsItem.toMap(),
      where: '${DatabaseHelper.columnTimestamp} = ?',
      whereArgs: [ttsItem.timestamp],
    ) > 0;
  }

  // 删除记录
  Future<bool> deleteTtsItem(TtsItem ttsItem) async {
    final db = await dbHelper.database;
    var count = await db.delete(
      DatabaseHelper.table,
      where: '${DatabaseHelper.columnTimestamp} = ?',
      whereArgs: [ttsItem.timestamp],
    );
    return count > 0;
  }

  // 查询所有记录
  Future<List<TtsItem>> getAllTtsItems() async {
    final db = await dbHelper.database;
    final List<Map<String, dynamic>> maps = await db.query(DatabaseHelper.table);

    return List.generate(maps.length, (i) {
      return TtsItem.fromMap(maps[i]);
    });
  }
}